/*-----------------------------------------------File Info------------------------------------------------
** File Name:               DS1302.c  
** Last modified date:      2016.07.22
** Last version:            V0.1
** Description:             
**--------------------------------------------------------------------------------------------------------            
** Created date:            2016.09.07
** author:                  YLY
** Version:                 V0.1
** Descriptions:            实时时钟模块,时钟芯片型号：DS1302  
**--------------------------------------------------------------------------------------------------------
*/
/*************************************************************
* 	include 
* 	头文件	
*************************************************************/
/*   硬件相关头文件     */
#include "M051Series.h"

/* OS 相关头文件 */
#include "osInclude.h"

/*   用户头文件      */
#include "userConfig.h"
#include "ds1302.h"





/******************************************************************** 

 函 数 名：vWriteRtc()
 功    能：往DS1302写入数据
 说    明：先写地址，后写命令/数据 (内部函数)
 调    用：vRtcWriteByte() , ucRtcReadByte()
 入口参数：ucAddr: DS1302地址, ucData: 要写的数据
 返 回 值：无
 设    计：           			日    期：
 修    改：                     日    期： 
***********************************************************************/
//static void vWriteRtc(uint8_t ucAddr, uint8_t ucData)
//{
//    RTC_CE = 1;
//	
//    vRtcWriteByte(ucAddr);     /* 地址，命令 */
//    vRtcWriteByte(ucData);       /* 写1Byte数据*/
//	
//    RTC_CE = 0;
//} 
/******************************************************************** 

 函 数 名：vRead1Rtc()
 功    能：读取DS1302某地址的数据
 说    明：先写地址，后读命令/数据 (内部函数)
 调    用：vRtcWriteByte() , ucRtcReadByte()
 入口参数：ucAddr: DS1302地址
 返 回 值：ucData :读取的数据
 设    计：           			日    期：
 修    改：                     日    期： 
***********************************************************************/
//static uint8_t vRead1Rtc(uint8_t ucAddr)
//{
//    uint8_t ucData;

//    RTC_CE = 1;
//	
//    vRtcWriteByte(ucAddr);             /* 地址，命令 */
//    ucData = ucRtcReadByte();         /* 读1Byte数据 */
//	
//    RTC_CE = 0;
//    return(ucData);
//} 
/******************************************************************** 
* 	16进制碌到BCD码转换
***********************************************************************/
//static uint8_t vHexToBcd(uint8_t ucBcd)
//{
//	uint8_t ucLi,ucHi;
//	
//	ucHi = ucBcd/10;
//	ucLi = ucBcd%10;
//	return (ucHi<<4)|ucLi;	
//}
/******************************************************************** 
*	BCD码到16进制码转换
***********************************************************************/
//static uint8_t ucBcdToHex(uint8_t ucBcd)
//{
//     uint8_t ucTmp,ucHi;

//     ucTmp = ucBcd & 0x7F;
//     ucHi =(ucTmp>>4) * 10;
//     ucHi +=(ucTmp & 0x0F);
//     return ucHi;
//}
/******************************************************************** 

 函 数 名：Set1302()
 功    能：设置初始时间
 说    明：先写地址，后读命令/数据(寄存器多字节方式)
 调    用：vWriteRtc()
 入口参数：pClock: 设置时钟数据地址 格式为: 年 星期 月 日 时 分 秒
                               7Byte (BCD码)1B 1B 1B 1B 1B  1B  1B
 返 回 值：无
 设    计：            			    日    期：
 修    改：                     日    期： 
***********************************************************************/
//void vSetRtc(tsTime tClock) 
//{
//    uint8_t i;
//    uint8_t ucAddr = 0x8C; 
//	uint8_t ucBuf[7];
//	memcpy(ucBuf,(uint8_t *)&tClock,sizeof(tClock));
//    vWriteRtc(0x8E,0x00);           	/* 控制命令,WP=0,写操作?  */
//    for(i=0;i<7;i++)
//    { 
//        vWriteRtc(ucAddr,vHexToBcd(ucBuf[i]));  	/* 年 星期 月 日 时 分 秒 */
//        ucAddr -=2;
//    }
//    vWriteRtc(0x8E,0x80);           	/* 控制命令,WP=1,写保护?  */
//}

/*****************************************************************************

 函 数 名：Get1302()
 功    能：读取DS1302当前时间
 说    明：
 调    用：vRead1Rtc() 
 入口参数：pucClock: 保存当前时间地址。当前时间格式为: 年 星期 月 日 时 分 秒
                                        7Byte (BCD码)   1B 1B 1B 1B 1B  1B  1B
 返 回 值：无
 设    计：			           	日    期：
 修    改：                     日    期： 
*****************************************************************************/
//void vGetRtc(tsTime *ptClock) 
//{
//    uint8_t i;
//    uint8_t ucAddr = 0x8D;
//	uint8_t ucBuf[7];
//    for (i=0; i<7; i++)
//    {
//        ucBuf[i] = ucBcdToHex(vRead1Rtc(ucAddr));/*格式为:年 星期 月 日 时 分 秒*/
//        ucAddr -= 2;
//    }
//	memcpy((uint8_t *)ptClock,ucBuf,sizeof(ucBuf));
//}
//====================================================================


          
        
      

